package models

import (
	"time"
)

type Orders struct {
	// 订单ID
	ID int `gorm:"column:id;PRIMARY_KEY;AUTO_INCREMENT" json:"id"`
	// 创建时间
	CreatedAt *time.Time `gorm:"column:created_at;type:timestamp" json:"created_at"`
	// 更新时间
	UpdatedAt *time.Time `gorm:"column:updated_at;type:timestamp" json:"updated_at"`
	OrdersCore
}

type OrdersCore struct {
	//客户
	Customer string `gorm:"column:customer" json:"customer"`
	//订单名称
	Name string `gorm:"column:name" json:"name"`
	// 电话
	Phone string `gorm:"column:phone" json:"phone"`
	// 种子品种ID
	SeedVariantID int `gorm:"column:seed_variant_id" json:"seed_variant_id"`
	// 种子数量
	SeedQuantity int `gorm:"column:seed_quantity" json:"seed_quantity"`
	// 种子盘数
	TrayNumber int `gorm:"column:tray_number" json:"tray_number"`
	// 每盘数量
	UnitNumber int `gorm:"column:unit_number" json:"unit_number"`
	// 新增字段 care, 默认为 false, 是否为关注订单
	Care bool `gorm:"column:care;type:tinyint(1);default:0" json:"care"`
	// 种子备注
	SeedRemark string `gorm:"column:seed_remark" json:"seed_remark"`
	// 订单备注
	Remark string `gorm:"column:remark" json:"remark"`
	// 预计播种时间,  2006-01-02 格式日期
	EstimatedSowingDate string `gorm:"column:estimated_sowing_date;type:date" json:"estimated_sowing_date"`
	// 实际播种时间,  2006-01-02 格式日期
	ActualSowingDate string `gorm:"column:actual_sowing_date;type:date" json:"actual_sowing_date"`
	// 预计出苗日期,  2006-01-02 格式日期
	EstimatedSeedlingDate string `gorm:"column:estimated_seedling_date;type:date" json:"estimated_seedling_date"`
	// 实际出苗日期,  2006-01-02 格式日期
	ActualSeedlingDate string `gorm:"column:actual_seedling_date;type:date" json:"actual_seedling_date"`
	// 已播种数量
	SowedQuantity int `gorm:"column:sowed_quantity" json:"sowed_quantity"`
	// 已分配苗床的种子数量
	AllocatedSeedbedQuantity int `gorm:"column:allocated_seedbed_quantity" json:"allocated_seedbed_quantity"`
	// 订单要求的提苗数量
	RequiredSeedlingQuantity int `gorm:"column:required_seedling_quantity" json:"required_seedling_quantity"`
	// 订单要求的提苗盘数
	RequiredSeedlingTray int `gorm:"column:required_seedling_tray" json:"required_seedling_tray"`
	// 订单要求的提苗每盘数量
	RequiredSeedlingUnit int `gorm:"column:required_seedling_unit" json:"required_seedling_unit"`
	// 已提苗的数量
	DeliveredQuantity int `gorm:"column:delivered_quantity" json:"delivered_quantity"`
	// 订单总金额
	TotalAmount float64 `gorm:"column:total_amount" json:"total_amount"`
	// 已收款金额
	ReceivedAmount float64 `gorm:"column:received_amount" json:"received_amount"`
	// 订单支付情况:0未知,-1未支付,1支付中,2支付完成
	PaymentStatus int `gorm:"column:payment_status" json:"payment_status"`
	// 订单状态: 0未知,1已下单,2待播种,3已播种,4待分棚,5已分棚,6待分苗床,7已分苗床,8待出苗,9已出苗,10待收款,11已全部收款
	OrderStatus int `gorm:"column:order_status" json:"order_status"`
}

type OrdersDetail struct {
	Orders
	// 种子品种名称
	SeedVariantName string `gorm:"column:seed_variant_name" json:"seed_variant_name"`
	// 种子类别名称
	SeedCategoryName string `gorm:"column:seed_category_name" json:"seed_category_name"`
}

type OrdersDelta struct {
	// 客户
	Customer interface{} `gorm:"column:customer" json:"customer" swaggertype:"string"`
	// 订单名称
	Name interface{} `gorm:"column:name" json:"name" swaggertype:"string"`
	// 电话
	Phone interface{} `gorm:"column:phone" json:"phone" swaggertype:"string"`
	// 种子品种ID
	SeedVariantID interface{} `gorm:"column:seed_variant_id" json:"seed_variant_id" swaggertype:"integer"`
	// 种子数量( 已弃用)
	SeedQuantity interface{} `gorm:"column:seed_quantity" json:"seed_quantity" swaggertype:"integer"`
	//	种子盘数
	TrayNumber interface{} `gorm:"column:tray_number" json:"tray_number" swaggertype:"integer"`
	//	每盘数量
	UnitNumber interface{} `gorm:"column:unit_number" json:"unit_number" swaggertype:"integer"`
	// 种子备注
	SeedRemark interface{} `gorm:"column:seed_remark" json:"seed_remark" swaggertype:"string"`
	// 订单备注
	Remark interface{} `gorm:"column:remark" json:"remark" swaggertype:"string"`
	// 预计播种时间,  2006-01-02 日期
	EstimatedSowingDate interface{} `gorm:"column:estimated_sowing_date" json:"estimated_sowing_date" swaggertype:"string"`
	// 实际播种时间,  2006-01-02 日期
	ActualSowingDate interface{} `gorm:"column:actual_sowing_date" json:"actual_sowing_date" swaggertype:"string"`
	// 预计出苗日期,  2006-01-02 格式日期
	EstimatedSeedlingDate interface{} `gorm:"column:estimated_seedling_date" json:"estimated_seedling_date" swaggertype:"string"`
	//	实际出苗日期,  2006-01-02 格式日期
	ActualSeedlingDate interface{} `gorm:"column:actual_seedling_date" json:"actual_seedling_date" swaggertype:"string"`
	// 已播种数量
	SowedQuantity interface{} `gorm:"column:sowed_quantity" json:"sowed_quantity"  swaggertype:"integer"`
	// 已分配苗床的种子数量
	AllocatedSeedbedQuantity interface{} `gorm:"column:allocated_seedbed_quantity" json:"allocated_seedbed_quantity" swaggertype:"integer"`
	// 订单要求的提苗数量
	RequiredSeedlingQuantity interface{} `gorm:"column:required_seedling_quantity" json:"required_seedling_quantity" swaggertype:"integer"`
	// 订单要求的提苗盘数
	RequiredSeedlingTray interface{} `gorm:"column:required_seedling_tray" json:"required_seedling_tray" swaggertype:"integer"`
	// 订单要求的提苗每盘数量
	RequiredSeedlingUnit interface{} `gorm:"column:required_seedling_unit" json:"required_seedling_unit" swaggertype:"integer"`
	// 已提苗的数量
	DeliveredQuantity interface{} `gorm:"column:delivered_quantity" json:"delivered_quantity" swaggertype:"integer"`
	// 订单总金额
	TotalAmount interface{} `gorm:"column:total_amount" json:"total_amount" swaggertype:"number" format:"float"`
	// 已收款金额
	ReceivedAmount interface{} `gorm:"column:received_amount" json:"received_amount" swaggertype:"number" format:"float"`
	// 订单支付情况:0未知,-1未支付,1支付中,2支付完成
	PaymentStatus interface{} `gorm:"column:payment_status" json:"payment_status" swaggertype:"integer"`
	// 订单状态: 0未知,1已下单,2待播种,3已播种,4待分棚,5已分棚,6待分苗床,7已分苗床,8待出苗,9已出苗,10待收款,11已全部收款
	OrderStatus interface{} `gorm:"column:order_status" json:"order_status" swaggertype:"integer"`
	// 新增字段 care, 默认为 false, 是否为关注订单
	Care interface{} `gorm:"column:care;type:tinyint(1);default:0" json:"care" swaggertype:"integer"`
}

func (Orders) TableName() string {
	return "orders"
}
